package com.liuchuanzheng.lcz_wanandroid.base

import android.app.Activity
import android.content.Context
import android.content.pm.ActivityInfo
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.gyf.immersionbar.ImmersionBar
import com.liuchuanzheng.lcz_wanandroid.R
import com.liuchuanzheng.lcz_wanandroid.util.dialog.DialogUtil


/**
 * @author 刘传政
 * @date 2021/9/13 0013 18:13
 * QQ:1052374416
 * 电话:18501231486
 * 作用:
 * 注意事项:
 */
abstract class BaseActivity : AppCompatActivity(), ILoading {
    lateinit var context: Context
    lateinit var activity: Activity
    private lateinit var loadingDialog: DialogUtil
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        context = this
        activity = this
        loadingDialog = DialogUtil(activity)
        //因为大部分界面在没有特意适配横屏时，自动适配效果根本不理想，所以直接强制横屏，有特殊需要自己再设置
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
        setContentView()
//        initStatusColor()
//        parseIntent()

    }

    /**
     * 因为系统自带的设置view方法有很多种,id,view都可以.所以这里不像
     * 大家都用id的封装方式,那是限制了自己
     * 建议用viewBinding的方式。个人不喜欢dataBinding
     */
    protected abstract fun setContentView()

    /**
     * 默认设置一下状态栏颜色,如果不满意可以自己再设置一遍
     */
    private fun initStatusColor() {
        ImmersionBar.with(this)
            .statusBarColor(R.color.purple_700) //状态栏颜色
            .statusBarDarkFont(false)//状态栏文字颜色
            .fitsSystemWindows(true) //使用该属性必须指定状态栏的颜色，不然状态栏透明，很难看. false表示布局嵌入状态栏。true表示布局避开状态栏
            .init()
    }

    override fun showLoading(msg: String) {
        loadingDialog.showLoading(msg)
    }

    override fun hideLoading() {
        loadingDialog.dismissLoading()
    }

    override fun onDestroy() {
        super.onDestroy()
        hideLoading()
    }

}